package com.glorystone.ins.vo;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.glorystone.ins.domain.CustomLocalDateSerializer;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.multipart.MultipartFile;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Date;

public @Data class OrderQueryConditionVo implements Serializable{
	/**
	 * 订单ID
	 */
	private Long tid ;

	/**
	 * 订单的状态
	 */
	private String orderStatus ;

	/**
	 * 保险公司的ID
	 */
	private Long insurerId ;

	/**
	 * 车牌号
	 */
	private String plateNum ;

	/**
	 * 渠道ID
	 */
	private Long channelId ;
	/**
	 * 渠道ID,格式(1,2,3)
	 */
	private String channelIdStr ;

	/**
	 * 出单日期
	 */

	private Date dateIssuance;

	private Date insurantStartDate;

	private Date insurantEndDate;

	/**
	 * 付款主题的标识
	 */
	private Integer themeKey;

	/**
	 * 垫子类型
	 */
	private Integer investmentType;

	/**
	 * 对手方
	 */
	private Integer opponentType;

	/**
	 * 资金流水状态
	 */
	private Integer recordStatus;

	/**
	 * 审核意见
	 */
	private String remark;

	/**
	 * 保费(交强险或者商业险保费)
	 */
	private BigDecimal premium;

	/**
	 * 税后保费
	 */
	private BigDecimal texPremium;

	/**
	 * 跟单点位
	 */
	private BigDecimal followPoint;

	/**
	 * 补单点位
	 */
	private BigDecimal supplementPoint;

	/**
	 * 渠道返点
	 */
	private BigDecimal channelPoint;

	/**
	 * 全保费
	 */
	private BigDecimal allPremium;

	/**
	 * 渠道支付保费
	 */
	private BigDecimal channelPayPremium;

	/**
	 * 渠道返佣费
	 */
	private BigDecimal channelRebateFee;

	/**
	 * 渠道参考返点
	 */
	private BigDecimal channelLookPoint;

	/**
	 * 产品ID
	 */
	private Long productId;

	/**
	 * 车船税
	 */
	private BigDecimal vehicleTex;
	/**
	 * 收取渠道保费
	 */
	private BigDecimal receiptChannel;

	/**
	 * 收款日期
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@JsonSerialize(using = CustomLocalDateSerializer.class)
	private LocalDate receiptDate;

	/**
	 * 收取渠道保费
	 */
	private BigDecimal payInsurer;
	/**
	 * 付款日期
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private LocalDate payDate;

	/**
	 * 还款凭证
	 */
	private MultipartFile file;

	/**
	 * 支付状态，1：未检查产品状态，2：产品失效继续支付，3：新产品状态失效支付失败，4：新产品状态生效支付失败
	 */
	private Integer payStatus;

	private boolean flag;
}
